laradock到laravel

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

前置依赖

  • Git
  • Docker(最新版本)
  • Docker-Compose
1
2
3
4
5
6
7
8
9
10
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

laradock

1 -下载laradock

1
git clone https://github.com/Laradock/laradock.git

2 -创建配置文件

1
2
cd laradock
cp env-example .env

3 -更换docker源

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://pg6cpimx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4 -启动服务

1
docker-compose up -d nginx mysql redis

5 -访问你的网站 http://127.0.0.1

6 -停止容器

1
docker-composer down

laravel

1 -查看容器并进入容器

1
2
docker-compose ps
docker-compose exec workspace bash

2 -更改composer

1
2
3
4
5
6
7
# 修改composer.json文件
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}

3 -composer安装laravel安装器

1
composer global require "laravel/installer"

4 -创建laravel项目blog

1
/root/.composer/vendor/bin/laravel new blog

5 -退出容器

1
exit

6 -配置域名并访问laravel

1
2
3
4
5
6
7
8
9
# 修改配置文件 laradock/nginx/sites/laravel.conf
cd nginx/sites/
cp laravel.conf.example laravel.conf
# 修改配置
root /var/www/blog/public;
# 修改本地hosts文件
vi /etc/hosts
# 添加
127.0.0.1 laravel.test

7 -重启容器

1
docker-compose restart

现在可以访问 http://laravel.test/ 看到你的laravel项目了!

Ps:

MySQL没有指定镜像源

1
2
docker-composer up -d mysql
ERROR: Service ‘mysql’ failed to build: Please provide a source image with `from` prior to commit

请更换docker的源。(阿里源可用)

MySQL连不上或者提示密码错误

1
#2002 - php_network_getaddresses: getaddrinfo failed: Name does not resolve &mdash; The server is not responding (or the local server's socket is not correctly configured).

8.0默认加密方式导致的,更换MySQL版本。

laradock/.evn MYSQL_VERSION=5.7

docker-compose build mysql

更改DATA_SAVE_PATH=~/.laradock/data目录权限。